Resumen

Row

confirmed

0

death

0 (NaN%)

Row

Casos acumulados diarios por tipo (solo Chubut)

Comparación

Casos diarios registrados

Mapa Chubut

Casos en Chubut (use los iconos + y - para acercar / alejar)

Mapa País

Casos en Argentina (use los iconos + y - para acercar / alejar)

About

The Coronavirus Dashboard: the case of Argentina

This Coronavirus dashboard: the case of Argentina provides an overview of the 2019 Novel Coronavirus COVID-19 (2019-nCoV) epidemic for Argentina. This dashboard is built with R using the R Makrdown framework and was adapted from this dashboard by Rami Krispin.

Code

The code behind this dashboard is available on GitHub.

Data

The input data for this dashboard is the dataset available from the {coronavirus} R package. Make sure to download the development version of the package to have the latest data:

install.packages("devtools")
devtools::install_github("RamiKrispin/coronavirus")

The data and dashboard are refreshed on a daily basis.

The raw data is pulled from the Johns Hopkins University Center for Systems Science and Engineering (JHU CCSE) Coronavirus repository.

Contact

For any question or feedback, you can contact me. More information about this dashboard can be found in this article.

Update

The data is as of jueves marzo 26, 2020 and the dashboard has been updated on domingo marzo 29, 2020.

Go back to www.statsandr.com (blog) or www.antoinesoetewey.com (personal website).

---
title: "Coronavirus en Chubut"
author: "CENPAT-CONICET"
output: 
  flexdashboard::flex_dashboard:
    orientation: rows
    # social: ["facebook", "twitter", "linkedin"]
    source_code: embed
    vertical_layout: fill
---

```{r setup, include=FALSE}
#------------------ Packages ------------------
library(flexdashboard)
# install.packages("devtools")
# devtools::install_github("RamiKrispin/coronavirus", force = TRUE)
library(coronavirus)
data(coronavirus)
update_datasets()

# View(coronavirus)
# max(coronavirus$date)

`%>%` <- magrittr::`%>%`
#------------------ Parameters ------------------
# Set colors
# https://www.w3.org/TR/css-color-3/#svg-color
confirmed_color <- "purple"
active_color <- "#1f77b4"
recovered_color <- "forestgreen"
death_color <- "red"
#------------------ Data ------------------
# df <- coronavirus %>%
#   # dplyr::filter(date == max(date)) %>%
#   dplyr::filter(Country.Region == "Argentina") %>%
#   dplyr::group_by(Country.Region, type) %>%
#   dplyr::summarise(total = sum(cases)) %>%
#   tidyr::pivot_wider(
#     names_from = type,
#     values_from = total
#   ) %>%
#   # dplyr::mutate(unrecovered = confirmed - ifelse(is.na(recovered), 0, recovered) - ifelse(is.na(death), 0, death)) %>%
#   dplyr::mutate(unrecovered = confirmed - ifelse(is.na(death), 0, death)) %>%
#   dplyr::arrange(-confirmed) %>%
#   dplyr::ungroup() %>%
#   dplyr::mutate(country = dplyr::if_else(Country.Region == "United Arab Emirates", "UAE", Country.Region)) %>%
#   dplyr::mutate(country = dplyr::if_else(country == "Mainland China", "China", country)) %>%
#   dplyr::mutate(country = dplyr::if_else(country == "North Macedonia", "N.Macedonia", country)) %>%
#   dplyr::mutate(country = trimws(country)) %>%
#   dplyr::mutate(country = factor(country, levels = country))
df <- read.csv2("/mnt/28EC75CE33EA541A/temporales/Coronavirus/estadisticas/tablas_de_entrada/df.csv")

# df_daily <- coronavirus %>%
#   dplyr::filter(Country.Region == "Argentina") %>%
#   dplyr::group_by(date, type) %>%
#   dplyr::summarise(total = sum(cases, na.rm = TRUE)) %>%
#   tidyr::pivot_wider(
#     names_from = type,
#     values_from = total
#   ) %>%
#   dplyr::arrange(date) %>%
#   dplyr::ungroup() %>%
#   #dplyr::mutate(active = confirmed - death - recovered) %>%
#   dplyr::mutate(active = confirmed - death) %>%
#   dplyr::mutate(
#     confirmed_cum = cumsum(confirmed),
#     death_cum = cumsum(death),
#     # recovered_cum = cumsum(recovered),
#     active_cum = cumsum(active)
#   )
df_daily <- read.csv2("/mnt/28EC75CE33EA541A/temporales/Coronavirus/estadisticas/tablas_de_entrada/df_daily.csv", sep=",")

# df1 <- coronavirus %>% dplyr::filter(date == max(date))
df1 <- read.csv2("/mnt/28EC75CE33EA541A/temporales/Coronavirus/estadisticas/tablas_de_entrada/df1.csv", sep=",")

```

Resumen
=======================================================================

Row {data-width=400}
-----------------------------------------------------------------------

### confirmed {.value-box}

```{r}

valueBox(
  value = paste(format(sum(df$confirmed), big.mark = ","), "", sep = " "),
  caption = "Total de casos confirmados",
  icon = "fas fa-user-md",
  color = confirmed_color
)
```





### death {.value-box}

```{r}

valueBox(
  value = paste(format(sum(df$death, na.rm = TRUE), big.mark = ","), " (",
    round(100 * sum(df$death, na.rm = TRUE) / sum(df$confirmed), 1),
    "%)",
    sep = ""
  ),
  caption = "Casos de muerte (tasa de mortalidad)",
  icon = "fas fa-heart-broken",
  color = death_color
)
```


Row
-----------------------------------------------------------------------

### **Casos acumulados diarios por tipo** (solo Chubut)
    
```{r}

plotly::plot_ly(data = df_daily) %>%
  plotly::add_trace(
    x = ~date,
    # y = ~active_cum,
    y = ~confirmed_cum,
    type = "scatter",
    mode = "lines+markers",
    # name = "Active",
    name = "Confirmados",
    line = list(color = active_color),
    marker = list(color = active_color)
  ) %>%
  plotly::add_trace(
    x = ~date,
    y = ~death_cum,
    type = "scatter",
    mode = "lines+markers",
    name = "Muertes",
    line = list(color = death_color),
    marker = list(color = death_color)
  ) %>%
  plotly::add_annotations(
    x = as.Date("2020-03-03"),
    y = 0.1,
    text = paste("Primer caso
en Argentina"), xref = "x", yref = "y", arrowhead = 5, arrowhead = 3, arrowsize = 1, showarrow = TRUE, ax = 2, ay = -70 ) %>% # plotly::add_annotations( # x = as.Date("2020-02-04"), # y = 1, # text = paste("First case"), # xref = "x", # yref = "y", # arrowhead = 5, # arrowhead = 3, # arrowsize = 1, # showarrow = TRUE, # ax = -10, # ay = -90 # ) %>% # plotly::add_annotations( # x = as.Date("2020-03-11"), # y = 3, # text = paste("First death"), # xref = "x", # yref = "y", # arrowhead = 5, # arrowhead = 3, # arrowsize = 1, # showarrow = TRUE, # ax = -90, # ay = -90 # ) %>% # plotly::add_annotations( # x = as.Date("2020-03-18"), # y = 14, # text = paste( # "New containment", # "", # "measures" # ), # xref = "x", # yref = "y", # arrowhead = 5, # arrowhead = 3, # arrowsize = 1, # showarrow = TRUE, # ax = -10, # ay = -90 # ) %>% plotly::layout( title = "", yaxis = list(title = "Número acumulado de casos", range = c(-0.1,5)), #xaxis = list(title = "Fecha"), xaxis = list( type = 'date', title = "Fecha"),#, #tickformat = "%d %B (%a)
%Y"), legend = list(x = 0.1, y = 0.9), hovermode = "compare" ) ``` Comparación ======================================================================= ### **Casos diarios registrados** ```{r} # daily_confirmed <- coronavirus %>% # dplyr::filter(type == "confirmed") %>% # dplyr::filter(date >= "2020-02-29") %>% # dplyr::mutate(country = Country.Region) %>% # dplyr::group_by(date, country) %>% # dplyr::summarise(total = sum(cases)) %>% # dplyr::ungroup() %>% # tidyr::pivot_wider(names_from = country, values_from = total) # # #---------------------------------------- # # Plotting the data # # daily_confirmed %>% # plotly::plot_ly() %>% # plotly::add_trace( # x = ~date, # y = ~Argentina, # type = "scatter", # mode = "lines+markers", # name = "Argentina" # ) %>% # plotly::add_trace( # x = ~date, # y = ~France, # type = "scatter", # mode = "lines+markers", # name = "France" # ) %>% # plotly::add_trace( # x = ~date, # y = ~Spain, # type = "scatter", # mode = "lines+markers", # name = "Spain" # ) %>% # plotly::add_trace( # x = ~date, # y = ~Italy, # type = "scatter", # mode = "lines+markers", # name = "Italy" # ) %>% # plotly::layout( # title = "", # legend = list(x = 0.1, y = 0.9), # yaxis = list(title = "Number of new confirmed cases"), # xaxis = list(title = "Date"), # # paper_bgcolor = "black", # # plot_bgcolor = "black", # # font = list(color = 'white'), # hovermode = "compare", # margin = list( # # l = 60, # # r = 40, # b = 10, # t = 10, # pad = 2 # ) # ) comparativo_provincias <- read.csv2("/mnt/28EC75CE33EA541A/temporales/Coronavirus/estadisticas/tablas_de_entrada/comparativo_provincias_acumulados.csv", sep= ";") #colnames(comparativo_provincias) library(viridis) l <- list( font = list( family = "sans-serif", size = 8, color = "#000"), bgcolor = "#E2E2E2", bordercolor = "#FFFFFF", borderwidth = 2) comparativo_provincias %>% ###### daily_confirmed plotly::plot_ly() %>% plotly::add_trace( x = ~date, y = ~Ciudad.Autónoma.de.Buenos.Aires, type = "scatter", #, type = 'scatter', mode = 'none', stackgroup = 'one', fillcolor = '#F5FF8D') mode = "none", ####lines+markers stackgroup = 'one', fillcolor = viridis(24)[1], name = "Ciudad Autónoma de Buenos Aires" ) %>% plotly::add_trace( x = ~date, y = ~Buenos.Aires, type = "scatter", #, type = 'scatter', mode = 'none', stackgroup = 'one', fillcolor = '#F5FF8D') mode = "none", ####lines+markers stackgroup = 'one', fillcolor = viridis(24)[2], name = "Buenos.Aires" ) %>% plotly::add_trace( x = ~date, y = ~Catamarca, type = "scatter", #, type = 'scatter', mode = 'none', stackgroup = 'one', fillcolor = '#F5FF8D') mode = "none", ####lines+markers stackgroup = 'one', fillcolor = viridis(24)[3], name = "Catamarca" ) %>% plotly::add_trace( x = ~date, y = ~Chaco, type = "scatter", #, type = 'scatter', mode = 'none', stackgroup = 'one', fillcolor = '#F5FF8D') mode = "none", ####lines+markers stackgroup = 'one', fillcolor = viridis(24)[4], name = "Chaco" ) %>% plotly::add_trace( x = ~date, y = ~Chubut, type = "scatter", #, type = 'scatter', mode = 'none', stackgroup = 'one', fillcolor = '#F5FF8D') mode = "none", ####lines+markers stackgroup = 'one', fillcolor = "darkred",#viridis(24)[5], name = "Chubut" ) %>% plotly::add_trace( x = ~date, y = ~Córdoba, type = "scatter", #, type = 'scatter', mode = 'none', stackgroup = 'one', fillcolor = '#F5FF8D') mode = "none", ####lines+markers stackgroup = 'one', fillcolor = viridis(24)[6], name = "Córdoba" ) %>% plotly::add_trace( x = ~date, y = ~Corrientes, type = "scatter", #, type = 'scatter', mode = 'none', stackgroup = 'one', fillcolor = '#F5FF8D') mode = "none", ####lines+markers stackgroup = 'one', fillcolor = viridis(24)[7], name = "Corrientes" ) %>% plotly::add_trace( x = ~date, y = ~Entre.Ríos, type = "scatter", #, type = 'scatter', mode = 'none', stackgroup = 'one', fillcolor = '#F5FF8D') mode = "none", ####lines+markers stackgroup = 'one', fillcolor = viridis(24)[8], name = "Entre Ríos" ) %>% plotly::add_trace( x = ~date, y = ~Formosa, type = "scatter", #, type = 'scatter', mode = 'none', stackgroup = 'one', fillcolor = '#F5FF8D') mode = "none", ####lines+markers stackgroup = 'one', fillcolor = viridis(24)[9], name = "Formosa" ) %>% plotly::add_trace( x = ~date, y = ~Jujuy, type = "scatter", #, type = 'scatter', mode = 'none', stackgroup = 'one', fillcolor = '#F5FF8D') mode = "none", ####lines+markers stackgroup = 'one', fillcolor = viridis(24)[10], name = "Jujuy" ) %>% plotly::add_trace( x = ~date, y = ~La.Pampa, type = "scatter", #, type = 'scatter', mode = 'none', stackgroup = 'one', fillcolor = '#F5FF8D') mode = "none", ####lines+markers stackgroup = 'one', fillcolor = viridis(24)[11], name = "La Pampa" ) %>% plotly::add_trace( x = ~date, y = ~La.Rioja, type = "scatter", #, type = 'scatter', mode = 'none', stackgroup = 'one', fillcolor = '#F5FF8D') mode = "none", ####lines+markers stackgroup = 'one', fillcolor = viridis(24)[12], name = "La Rioja" ) %>% plotly::add_trace( x = ~date, y = ~Mendoza, type = "scatter", #, type = 'scatter', mode = 'none', stackgroup = 'one', fillcolor = '#F5FF8D') mode = "none", ####lines+markers stackgroup = 'one', fillcolor = viridis(24)[13], name = "Mendoza" ) %>% plotly::add_trace( x = ~date, y = ~Misiones, type = "scatter", #, type = 'scatter', mode = 'none', stackgroup = 'one', fillcolor = '#F5FF8D') mode = "none", ####lines+markers stackgroup = 'one', fillcolor = viridis(24)[14], name = "Misiones" ) %>% plotly::add_trace( x = ~date, y = ~Neuquén, type = "scatter", #, type = 'scatter', mode = 'none', stackgroup = 'one', fillcolor = '#F5FF8D') mode = "none", ####lines+markers stackgroup = 'one', fillcolor = viridis(24)[15], name = "Neuquén" ) %>% plotly::add_trace( x = ~date, y = ~Río.Negro, type = "scatter", #, type = 'scatter', mode = 'none', stackgroup = 'one', fillcolor = '#F5FF8D') mode = "none", ####lines+markers stackgroup = 'one', fillcolor = viridis(24)[16], name = "Río Negro" ) %>% plotly::add_trace( x = ~date, y = ~Salta, type = "scatter", #, type = 'scatter', mode = 'none', stackgroup = 'one', fillcolor = '#F5FF8D') mode = "none", ####lines+markers stackgroup = 'one', fillcolor = viridis(24)[17], name = "Salta" ) %>% plotly::add_trace( x = ~date, y = ~San.Juan, type = "scatter", #, type = 'scatter', mode = 'none', stackgroup = 'one', fillcolor = '#F5FF8D') mode = "none", ####lines+markers stackgroup = 'one', fillcolor = viridis(24)[18], name = "San Juan" ) %>% plotly::add_trace( x = ~date, y = ~San.Luis, type = "scatter", #, type = 'scatter', mode = 'none', stackgroup = 'one', fillcolor = '#F5FF8D') mode = "none", ####lines+markers stackgroup = 'one', fillcolor = viridis(24)[19], name = "San Luis" ) %>% plotly::add_trace( x = ~date, y = ~Santa.Cruz, type = "scatter", #, type = 'scatter', mode = 'none', stackgroup = 'one', fillcolor = '#F5FF8D') mode = "none", ####lines+markers stackgroup = 'one', fillcolor = viridis(24)[20], name = "Santa Cruz" ) %>% plotly::add_trace( x = ~date, y = ~Santa.Fe, type = "scatter", #, type = 'scatter', mode = 'none', stackgroup = 'one', fillcolor = '#F5FF8D') mode = "none", ####lines+markers stackgroup = 'one', fillcolor = viridis(24)[21], name = "Santa Fe" ) %>% plotly::add_trace( x = ~date, y = ~Santiago.del.Estero, type = "scatter", #, type = 'scatter', mode = 'none', stackgroup = 'one', fillcolor = '#F5FF8D') mode = "none", ####lines+markers stackgroup = 'one', fillcolor = viridis(24)[22], name = "Santiago del Estero" ) %>% plotly::add_trace( x = ~date, y = ~Tierra.del.Fuego, type = "scatter", #, type = 'scatter', mode = 'none', stackgroup = 'one', fillcolor = '#F5FF8D') mode = "none", ####lines+markers stackgroup = 'one', fillcolor = viridis(24)[23], name = "Tierra del Fuego" ) %>% plotly::add_trace( x = ~date, y = ~Tucumán, type = "scatter", #, type = 'scatter', mode = 'none', stackgroup = 'one', fillcolor = '#F5FF8D') mode = "none", ####lines+markers stackgroup = 'one', fillcolor = viridis(24)[24], name = "Tucumán" ) %>% plotly::layout( title = "", legend = l, #list(x = 0.1, y = 0.9), yaxis = list(title = "Número de casos confirmados"), xaxis = list(title = "Fecha", type = 'date'), # paper_bgcolor = "black", # plot_bgcolor = "black", # font = list(color = 'white'), hovermode = "compare", margin = list( # l = 60, # r = 40, b = 10, t = 10, pad = 2 ) ) ``` Mapa Chubut ======================================================================= ### **Casos en Chubut** (*use los iconos + y - para acercar / alejar*) ```{r} library(leaflet) library(leafpop) library(purrr) library(sf) nc <- sf::st_read("/mnt/28EC75CE33EA541A/temporales/Coronavirus/estadisticas/Ministerio_Salud_Chubut/Chubut_poligonos_Areas_programaticas_coronavirus.shp", quiet = TRUE) df2 <- read.csv2("/mnt/28EC75CE33EA541A/temporales/Coronavirus/estadisticas/tablas_de_entrada/df2.csv", sep="\t") df2$Long <- as.numeric(paste(df2$Long)) df2$Lat <- as.numeric(paste(df2$Lat)) #unique(df2$type) # cv_data_for_plot <- df2 %>% # # dplyr::filter(Country.Region == "Argentina") %>% # dplyr::filter(cases > 0) %>% # dplyr::group_by(Country.Region, Province.State, Lat, Long, type) %>% # dplyr::summarise(cases = sum(cases)) %>% # dplyr::mutate(log_cases = 2 * log(cases)) %>% # dplyr::ungroup() cv_data_for_plot.split <- df2 %>% split(df2$type) pal <- colorFactor(c("blue", "green", "red", "orange", "yellow", "purple", "brown"), domain = c("Casos Sospechosos con Nexo Epidemiológico", "Casos Sospechosos IRAG sin Nexo Epidemiológico", "Casos Confirmados", "Casos Confirmados fuera de la provincia", "Casos Descartados", "Contactos Estrechos de casos confirmados", "Viajeros con Aislamiento Preventivo"))#"confirmed", "death", "recovered")) pal_ap <- colorFactor(c("blue", "green", "yellow", "purple"), domain = c("A.P. Comodoro Rivadavia", "A.P. Norte", "A.P. Trelew", "A.P. Esquel")) map_object <- leaflet() %>% addProviderTiles(providers$Esri.WorldStreetMap) %>% addPolygons(data = nc, #fillColor = "aliceblue", #color = "grey", label = ~NOMBRE, color = ~ pal_ap(NOMBRE), fillOpacity = 0.1) names(cv_data_for_plot.split) %>% purrr::walk(function(df) { map_object <<- map_object %>% addCircleMarkers( data = cv_data_for_plot.split[[df]], lng = ~Long, lat = ~Lat, label=~as.character(cases), #textOnly = TRUE, color = ~ pal(type), stroke = FALSE, fillOpacity = 0.8, radius = ~log_cases, #log_cases popup = leafpop::popupTable(cv_data_for_plot.split[[df]], feature.id = FALSE, row.numbers = FALSE, zcol = c("type", "cases", "Country.Region", "Province.State") ), group = df, # clusterOptions = markerClusterOptions(removeOutsideVisibleBounds = F), labelOptions = labelOptions(style = list("font-weight" = "normal", padding = "3px 8px", 'color'='black'), textsize = "15px", direction = "auto", noHide = TRUE, offset=c(0,-12), textOnly = TRUE#, #noHide = F, #direction = "auto" ) ) }) library(plotly) #map_object map_object %>% addLayersControl(position = "bottomright", baseGroups = names(cv_data_for_plot.split), options = layersControlOptions(collapsed = FALSE) ) %>% hideGroup("Casos Confirmados fuera de la provincia") %>% hideGroup("Casos Descartados") %>% hideGroup("Casos Sospechosos con Nexo Epidemiológico") %>% hideGroup("Casos Sospechosos IRAG sin Nexo Epidemiológico")%>% hideGroup("Contactos Estrechos de casos confirmados")%>% hideGroup("Viajeros con Aislamiento Preventivo") %>% addMiniMap(tiles = providers$Esri.WorldStreetMap, width = 120, height=80) ###"", "", "Casos Confirmados","", "","") ``` Mapa País ======================================================================= ### **Casos en Argentina** (*use los iconos + y - para acercar / alejar*) ```{r} # map tab added by Art Steinmetz library(leaflet) library(leafpop) library(purrr) df1 <- read.csv2("/mnt/28EC75CE33EA541A/temporales/Coronavirus/estadisticas/tablas_de_entrada/df1.csv", sep=",") df1$Long <- as.numeric(paste(df1$Long)) df1$Lat <- as.numeric(paste(df1$Lat)) t <- list( family = "sans serif", size = 14, color = "grey50") cv_data_for_plot <- df1 %>% # dplyr::filter(Country.Region == "Argentina") %>% dplyr::filter(cases > 0) %>% dplyr::group_by(Country.Region, Province.State, Lat, Long, type) %>% dplyr::summarise(cases = sum(cases)) %>% dplyr::mutate(log_cases = 2 * log(cases)) %>% dplyr::ungroup() cv_data_for_plot.split <- cv_data_for_plot %>% split(cv_data_for_plot$type) pal <- colorFactor(c("orange", "red", "green"), domain = c("confirmados", "muertos", "reuperados")) map_object <- leaflet() %>% addProviderTiles(providers$OpenStreetMap) #### Stamen.Toner names(cv_data_for_plot.split) %>% purrr::walk(function(df) { map_object <<- map_object %>% addCircleMarkers( data = cv_data_for_plot.split[[df]], lng = ~Long, lat = ~Lat, # label=~as.character(cases), color = ~ pal(type), stroke = FALSE, fillOpacity = 0.8, radius = ~log_cases*1.5, popup = leafpop::popupTable(cv_data_for_plot.split[[df]], feature.id = FALSE, row.numbers = FALSE, zcol = c("type", "cases", "Country.Region", "Province.State") ), group = df, # clusterOptions = markerClusterOptions(removeOutsideVisibleBounds = F), labelOptions = labelOptions( noHide = F, direction = "auto" ) ) }) map_object %>% addLayersControl(#position = "topright", overlayGroups = names(cv_data_for_plot.split), options = layersControlOptions(collapsed = FALSE) ) ``` About ======================================================================= **The Coronavirus Dashboard: the case of Argentina** This Coronavirus dashboard: the case of Argentina provides an overview of the 2019 Novel Coronavirus COVID-19 (2019-nCoV) epidemic for Argentina. This dashboard is built with R using the R Makrdown framework and was adapted from this [dashboard](https://ramikrispin.github.io/coronavirus_dashboard/){target="_blank"} by Rami Krispin. **Code** The code behind this dashboard is available on [GitHub](https://github.com/AntoineSoetewey/coronavirus_dashboard){target="_blank"}. **Data** The input data for this dashboard is the dataset available from the [`{coronavirus}`](https://github.com/RamiKrispin/coronavirus){target="_blank"} R package. Make sure to download the development version of the package to have the latest data: ``` install.packages("devtools") devtools::install_github("RamiKrispin/coronavirus") ``` The data and dashboard are refreshed on a daily basis. The raw data is pulled from the Johns Hopkins University Center for Systems Science and Engineering (JHU CCSE) Coronavirus [repository](https://github.com/RamiKrispin/coronavirus-csv){target="_blank"}. **Contact** For any question or feedback, you can [contact me](https://www.statsandr.com/contact/). More information about this dashboard can be found in this [article](https://www.statsandr.com/blog/how-to-create-a-simple-coronavirus-dashboard-specific-to-your-country-in-r/). **Update** The data is as of `r format(max(coronavirus$date), "%A %B %d, %Y")` and the dashboard has been updated on `r format(Sys.time(), "%A %B %d, %Y")`. *Go back to [www.statsandr.com](https://www.statsandr.com/) (blog) or [www.antoinesoetewey.com](https://www.antoinesoetewey.com/) (personal website)*.